package com.buss.product.service;

import com.buss.core.dic.RecordStatus;
import com.buss.core.persistence.OrderBy;
import com.buss.core.persistence.Paginalbe;
import com.buss.core.persistence.ResultList;
import com.buss.product.model.CatePropGroup;

public interface CatePropGroupService {

	/**
	 * 新增属性分组信息
	 * @param propGroup
	 * @return
	 */
	public CatePropGroup savePropGroup(CatePropGroup propGroup);
	
	/**
	 * 修改属性分组信息
	 * @param propGroup
	 */
	public void editPropGroup(CatePropGroup propGroup);
	
	/**
	 * 删除属性分组信息
	 * @param id
	 */
	public void removePropGroup(Long[] ids);
	
	/**
	 * 获取指定的属性分组信息
	 * @param id
	 * @return
	 */
	public CatePropGroup loadPropGroup(Long id);
	
	/**
	 * 获取属性分组信息列表
	 * @param companyId
	 * @param name
	 * @param status
	 * @param orderBy
	 * @param page
	 * @return
	 */
	public ResultList<CatePropGroup> queryCatePropGroup(String companyId,String name,
			RecordStatus status,OrderBy orderBy,Paginalbe page);
	
	
	/**
	 * 根据商品分类编码获取商品属性分组信息
	 * @param companyId
	 * @param groupId
	 * @param orderBy
	 * @param page
	 * @return
	 */
	public ResultList<CatePropGroup> queryCatePropGroupByCategoryId(String companyId,
			Long groupId,RecordStatus status,OrderBy orderBy,Paginalbe page);
	
	/**
	 * 获取指定分类编码(包括父分类)对应的商品属性信息
	 * @param companyId
	 * @param groupId
	 * @param status
	 * @param orderBy
	 * @param page
	 * @return
	 */
	public ResultList<CatePropGroup> queryCatePropGroupByParentCategoryId(String companyId,Long categoryId,RecordStatus status,OrderBy orderBy,Paginalbe page);
	
	/**
	 * 获取指定分类编码(包括父分类)没有对应的商品属性信息
	 * @param companyId
	 * @param groupId
	 * @param status
	 * @param orderBy
	 * @param page
	 * @return
	 */
	public ResultList<CatePropGroup> queryCatePropGroupNotByParentCategoryId(String companyId,Long categoryId,RecordStatus status,OrderBy orderBy,Paginalbe page);
}
